// src/components/ScheduleTable/ScheduleTable.js
import React, { useEffect, useState } from 'react';
import { Table } from 'antd'; // 假设你正在使用Ant Design的Table组件
import{getStudentScheduleAPI} from "@/api/student";

const StudentCourseSchedule = ({student_id}) => {
    // 定义列配置
    const scheduleColumns = [
        {
            title: '日期',
            dataIndex: 'date',
            key: '1',
        },
        {
            title: '星期',
            dataIndex: 'week',
            key: '2',
        },
        {
            title: '时间',
            dataIndex: 'time',
            key: '3',
        },
        {
            title: '场地',
            dataIndex: 'place',
            key: '4',
        },
        {
            title: '科目',
            dataIndex: 'subject',
            key: '5',
        },
        {
            title: '参与人员',
            dataIndex: 'participant',
            key: '6',
        },
    ];

    // 初始化课程表数据
    const [scheduleData, setScheduleData] = useState([]);

    // 加载课程表数据
    // useEffect(async () => {
    //   try {
    //     console.log('你家：',student_id)
    //     const response = await getScheduleAPI(student_id);
    //     const fetchedData = response.data.schedule;
    //     setScheduleData(fetchedData);
    //   } catch (error) {
    //     console.error('Failed to fetch schedule:', error);
    //   }
    // }, []);
    useEffect(() => {
        let isMounted = true;

        async function fetchData() {
            try {
                const response = await getStudentScheduleAPI(student_id);
                if (isMounted) {
                    const fetchedData = response.data;
                    setScheduleData(fetchedData);
                }
            } catch (error) {
                console.error('Failed to fetch schedule:', error);
            }
        }

        fetchData();

        // 返回一个清理函数，用于处理组件卸载时的清理操作
        return () => {
            isMounted = false; // 这里设置标志，用于在异步请求完成前取消setState操作
            // 如果有WebSocket连接、定时器等需要在这里清理，可以添加相应逻辑
            // 例如：webSocket.close(); 或 clearInterval(timer);
        };
    }, [student_id]); // 确保student_id在依赖数组中，如果它是动态的

    // 返回课程表组件
    return (
        <Table
            columns={scheduleColumns}
            dataSource={scheduleData}
            pagination={{
                total: scheduleData.length, // 更改total为实际数据长度
                pageSize: 5,
                // 注意：page参数通常由Table组件自动控制，不需要手动指定
            }}
        />
    );
};

export default StudentCourseSchedule;
